/**
 * 图像处理工具类
 */
export const imageTools = {
  /**
   * 从视频中截取指定区域的帧
   * @param {HTMLVideoElement} video 视频元素
   * @param {HTMLCanvasElement} canvas 画布元素
   * @param {CanvasRenderingContext2D} ctx 画布上下文
   * @param {Object} cropParams 裁剪参数
   * @returns {Object} 有效的裁剪参数
   */
  cropFrame(video, canvas, ctx, cropParams) {
    // 验证裁剪参数
    const validCropParams = {
      left: Math.max(0, parseInt(cropParams.left)),
      top: Math.max(0, parseInt(cropParams.top)),
      width: Math.min(video.videoWidth, parseInt(cropParams.width)),
      height: Math.min(video.videoHeight, parseInt(cropParams.height))
    };

    // 调整画布尺寸
    canvas.width = validCropParams.width;
    canvas.height = validCropParams.height;

    // 执行区域截图
    ctx.drawImage(
      video,
      validCropParams.left, validCropParams.top,   // 源起点
      validCropParams.width, validCropParams.height, // 源尺寸
      0, 0,                              // 目标起点
      validCropParams.width, validCropParams.height  // 目标尺寸
    );

    return validCropParams;
  }
};